//master
#include <Wire.h>
#include <Rainbowduino.h>

int c,x,y,r,g,b;

void setup(){
    Rb.init();
    Serial.begin(9600);
    Wire.begin();
}
void loop(){
    while(Serial.available() > 0){
        c = Serial.parseInt(); //maji se zhasnout dosud svitici LED?
        x = Serial.parseInt();
        y = Serial.parseInt();
        r = Serial.parseInt();
        g = Serial.parseInt();
        b = Serial.parseInt();
        if(x >= 8 || y >= 16 || r >= 256 || g >= 256 || b >= 256){
            Serial.println("Chybna data, nebo neplatny rozsah.");    
        }   
        else{
            if(c == 1){
                Rb.blankDisplay();
                clearDisplay(100); 
            }
            if(y < 8){
                //toto se zobrazi na master zarizeni
                Rb.setPixelXY(x,y,r,g,b);
            }
            else if(y >= 8){
                //toto se musi pred zobrazenim odeslat do slave zarizeni
                //pred odeslanim jeste prevedeme souradnice na rozsah 0 - 7
                y = y%8;
                setPixel(100);
            }
        }
    }    
}

void clearDisplay(int addr){
    Wire.beginTransmission(addr);
    Wire.write(1); //pouze zhasne svitici LED
    Wire.write(0);
    Wire.write(0);
    Wire.write(0);
    Wire.write(0);
    Wire.write(0);
    Wire.endTransmission();
}

void setPixel(int addr){
    Wire.beginTransmission(addr);
    Wire.write(c);
    Wire.write(x);
    Wire.write(y);
    Wire.write(r);
    Wire.write(g);
    Wire.write(b);
    Wire.endTransmission();
}